//
//  Status.swift
//  Sina
//
//  Created by yuanyuan on 15/12/21.
//  Copyright © 2015年 yuanyuan. All rights reserved.
//

import UIKit

class Status: NSObject {
    
//    微博创建时间
    var create_at:String?
//   微博ID  NSInteger 在iphone5c以下的设备上  会导致整型数据被截
    var id:Int64 = 0
//  微博信息内容
    var text:String?
// 微博来源
    var source:String?
//    用户模型
    var user:User?
    
//    配图的数组
    var pic_urls:[[String:String]]? {
        didSet{
            guard let array =  pic_urls else {
            
            return
            
            }
//        遍历数组
//            将数组实例化
            imageURLs = [NSURL]()
            for  item in array {
                //相信后端 一定能够返回一个 string类型的url

                let urlString = item["thumbnail_pic"]!
                
                
                //相信后端给定的urlString  一定能够转换为 url对象
                let url = NSURL(string: urlString)!
                
//                添加url
                imageURLs!.append(url)
            
            }

        }
        
    }
    
   //将配图数组转换为 纯种的url对象
    var imageURLs:[NSURL]?
    var retweeted_status:Status?
    
    
//    构造方法kvc设置值
    init(dict:[String:AnyObject]) {
    
    super.init()
setValuesForKeysWithDictionary(dict)

    
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        if key == "user" {
        
//            print(key)
//        字典转模型
            if let dict = value as? [String:AnyObject]{
            user = User(dict:dict)
            
//            print(user)
            
            }
//        注意需要return  否者上面的字典转模型就白转了
            return
        }
        
        
        if  key == "retweeted_status" {
            
            if let dict = value as? [String:AnyObject] {
                
                retweeted_status = Status(dict:dict)
                return
                
            }
            
            
        }
//        给其他属性赋值
        super.setValue(value, forKey: key)
        
    }
    
    
//    过滤掉不需要的数据
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
       
        
        
        
    }
    
    
    override var description:String {
    
    let keys = ["created_at","id","text","source","user"]
        
    return dictionaryWithValuesForKeys(keys).description
    
    }
    
    
    

}
